package com.xingkeduo.pojo.table;

import com.baomidou.mybatisplus.annotation.TableName;
import com.xingkeduo.pojo.enums.CommentStar;
import com.xingkeduo.pojo.enums.ServiceType;
import com.xingkeduo.utils.TableAnnotations;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 评价
 * @author chi  2019-02-19 17:21
 **/
@NoArgsConstructor
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName(value = "t_comments")
public class Comments extends BaseTable<Comments> implements Serializable {

    /**
     *
     *
     * `id` int(11) NOT NULL AUTO_INCREMENT,
     *   `admin_id` int(10) DEFAULT NULL COMMENT '理发师ID',
     *   `store_id` int(10) NOT NULL COMMENT '店铺ID',
     *   `user_id` int(10) NOT NULL COMMENT '用户ID',
     *   `order_id` int(10) DEFAULT NULL COMMENT '订单ID',
     *   `comment` text COMMENT '评价（已过滤）',
     *   `comment_star` tinyint(1) DEFAULT NULL COMMENT '服务评分',
     *   `environment_star` tinyint(1) DEFAULT NULL COMMENT '环境分数',
     *   `hygiene_star` tinyint(1) DEFAULT NULL COMMENT '卫生分数',
     *   `createtime` int(10) NOT NULL COMMENT '创建时间',
     *   `order_no` char(16) NOT NULL COMMENT '订单号',
     *   `mobile` varchar(11) DEFAULT NULL COMMENT '手机',
     *   `order_createtime` int(10) DEFAULT NULL COMMENT '订单生成时间',
     *   `order_starttime` int(10) DEFAULT NULL COMMENT '订单开始服务时间',
     *   `wechat_id` int(11) DEFAULT NULL COMMENT '微信帐号id',
     *   `alipay_user_id` int(11) DEFAULT NULL COMMENT '支付宝用户id',
     *   `test` tinyint(1) DEFAULT '0' COMMENT '0正常评论 1黑名单评论',
     *   `type` tinyint(2) DEFAULT NULL COMMENT '订单类型 1-现金支付 | 2-微信公众平台支付 | 3-微信扫码支付 | 4-支付宝服务窗支付  | 5-随心付微信支付 | 6-百度糯米 | 7-大众点评 | 8-支付宝扫码支付 | 9-支付宝随心付| 10-老年票',
     *   `pic_ids` varchar(255) DEFAULT NULL COMMENT '评价图片ids',
     *   `is_effective` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否生效',
     *   `judgement_label` varchar(120) DEFAULT NULL COMMENT '评价标签（中文，用逗号分开；例如：剪发技术超赞，服务超棒，店内舒适干净，购票体验好，网络很快）',
     *   `anonymous` tinyint(1) DEFAULT '0' COMMENT '是否匿名',
     *   `comment_not_filter` text COMMENT '原评价内容（未过滤）',
     *   `is_sensitive` tinyint(1) DEFAULT '0' COMMENT '是否为敏感内容 0否 1是',
     *   `send_reason_type` tinyint(1) DEFAULT NULL COMMENT '差评标签分类：1. 技术   2. 沟通   3. 推销   4. 卫生   5. 修剪工具   6. 预约等待   7. 服务态度   8. 硬件投诉   9. 其他',
     *   `remarks` text COMMENT '差评回复备注',
     *   `question_answer` varchar(255) DEFAULT NULL COMMENT '题目的答案',
     *   `replay_type` tinyint(1) DEFAULT NULL COMMENT '回复类型：1回访  2投诉',
     *   `handle_status` tinyint(1) DEFAULT NULL COMMENT '处理状态： 1未回访 2已回访 3已处理',
     *   `coupon_type` varchar(20) DEFAULT NULL COMMENT '处理状态： 1未回访 2已回访 3已处理',
     *   `complain_type` tinyint(1) DEFAULT NULL COMMENT '投诉方式：1公众号  2客服电话',
     *   `reason` varchar(255) DEFAULT NULL COMMENT '原因：1剪发技术 2服务态度 3零售推销 4预约等待 5工具使用 6验错票',
     *   `revisit_remarks` varchar(255) DEFAULT NULL COMMENT '  回访备注',
     *   `is_reply` tinyint(1) DEFAULT '0' COMMENT '是否回复顾客 1回复 0未回复',
     *
     *
     *
     */
    @TableAnnotations("订单ID")
    private String orderId;

    @TableAnnotations("订单号")
    private String orderNo;

    @TableAnnotations("大区id")
    private String vendorId;

    @TableAnnotations("城市id")
    private String cityId;

    @TableAnnotations("分公司id")
    private String branchOfficeId;

    @TableAnnotations("店铺ID")
    private String storeId;

    @TableAnnotations("服务评分")
    private CommentStar commentStar;

    @TableAnnotations("理发师ID")
    private String adminId;

    @TableAnnotations("开始服务时间")
    private LocalDateTime serveStartTime;

    @TableAnnotations("结束服务时间")
    private LocalDateTime serveEndTime;

    @TableAnnotations("服务类型 1剪发 2刘海 3高级")
    private ServiceType serviceType;

    @TableAnnotations("用户手机号")
    private String userMobile;

    @TableAnnotations("用户昵称")
    private String userNickName;

    @TableAnnotations("是否生效")
    private Boolean isEffective;

    //以上是与查询有关字段


    @TableAnnotations("大区名称")
    private String vendorName;

    @TableAnnotations("城市名称")
    private String cityName;

    @TableAnnotations("分公司名称")
    private String branchOfficeName;

    @TableAnnotations("店铺名称")
    private String storeName;

    @TableAnnotations("原评价内容（未过滤）")
    private String commentNotFilter;

    @TableAnnotations("手艺人名称")
    private String adminName;

    @TableAnnotations("是否匿名")
    private Boolean anonymous;

    @TableAnnotations("顾客留的手机")
    private String mobile;

    @TableAnnotations("评价图片ids")
    private String picIds;

    @TableAnnotations("评价标签（中文，用逗号分开；例如：剪发技术超赞，服务超棒，店内舒适干净，购票体验好，网络很快）")
    private String judgementLabel;

    @TableAnnotations("评价标签（用逗号分开；例如：1，2，3，4，5）")
    private String labels;

    @TableAnnotations("用户ID")
    private String userId;

    @TableAnnotations("星客多用户端展示")
    private Boolean shownToUser;

    @TableAnnotations("星客多发型师端展示")
    private Boolean shownToAdmin;

    @TableAnnotations("评价（已过滤）")
    private String comment;

    //以上是与展示相关字段

    @TableAnnotations("总金额")
    private BigDecimal allPrice;
    @TableAnnotations("预约开始时间")
    private LocalDateTime appointmentStartTime;
    @TableAnnotations("预约结束时间")
    private LocalDateTime appointmentEndTime;


    @TableAnnotations("创建时间")
    private LocalDateTime createdTime;

    //以下目前不需要,先冗余着
    @TableAnnotations("环境分数")
    private int environmentStar;
    @TableAnnotations("卫生分数")
    private int hygieneStar;

    @TableAnnotations("是否为敏感内容 0否 1是")
    private int isSensitive;
    @TableAnnotations("差评标签分类：1. 技术   2. 沟通   3. 推销   4. 卫生   5. 修剪工具   6. 预约等待   7. 服务态度   8. 硬件投诉   9. 其他")
    private int sendReasonType;
    @TableAnnotations("差评回复备注")
    private String remarks;
    @TableAnnotations("题目的答案")
    private String questionAnswer;
    @TableAnnotations("回复类型：1回访  2投诉")
    private int replayType;
    @TableAnnotations("处理状态： 1未回访 2已回访 3已处理")
    private int handleStatus;
    @TableAnnotations("处理状态： 1未回访 2已回访 3已处理")
    private String couponType;
    @TableAnnotations("投诉方式：1公众号  2客服电话")
    private int complainType;
    @TableAnnotations("原因：1剪发技术 2服务态度 3零售推销 4预约等待 5工具使用 6验错票")
    private String reason;
    @TableAnnotations("回访备注")
    private String revisitRemarks;
    @TableAnnotations("是否回复顾客 1回复 0未回复")
    private int isReply;

    @TableAnnotations("服务类型Id")
    private String serviceTypeId;

    @TableAnnotations("服务类型名称")
    private String serviceTypeName;

    //售后状态 售后状态（全部状态，1：已处理，0：未处理）
    private Boolean aftermarketStatus;

    //以上是原有字段
}
